// pages/myindex/myindex.js

Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: null,
    hasUserInfo: false,
    menus: [{
      icon: '../../images/money.png',
      name: '个人信息',
      url: '../forminfo/forminfo'
    }, {
      icon: '../../images/history.png',
      name: '浏览历史',
      url: ''
    }, {
      icon: '../../images/why.png',
      name: '我的问答',
      url: ''
    }, {
      icon: '../../images/collect.png',
      name: '我的收藏',
      url: ''
    }, {
      icon: '../../images/about.png',
      name: '关于我们',
      url: ''
    }],

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 检查是否登录
    this.setData({
      userInfo: wx.getStorageSync('userInfo'),
      hasUserInfo: wx.getStorageSync('hasUserInfo')
    })
    if (this.data.hasUserInfo == "") {
      // this.wechatLogin()
      console.log("请点击登录！")
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  // 页面路由
  toSwitchTab: function (event) {
    var url = event.currentTarget.dataset.pageurl
    wx.switchTab({
      url: url,
    })
  },
  toNavigateTo: function (event) {
    var url = event.currentTarget.dataset.pageurl
    wx.navigateTo({
      url: url,
    })
  },
  toRedirectTo: function (event) {
    var url = event.currentTarget.dataset.pageurl
    wx.redirectTo({
      url: url,
    })
  },
  wechatLogin: function (event) {
    console.log("wechatLogin!")

    /**
     * 使用Promise 对象，将异步操作以同步操作的流程表达出来，避免了层层嵌套的回调函数。
     */
    let login = new Promise((resolve, reject) => {
      console.log("login")
      wx.login({
        success: (res) => {
          console.log(res)
          if (res.code) {
            resolve(res)
          } else {
            console.log('登录失败！' + res.errMsg)
            reject(('登录失败！' + res.errMsg))
          }
        }
      })
    })
    let getUserProfile = new Promise((resolve, reject) => {
      console.log("getUserInfo")
      wx.getUserProfile({
        desc: '业务需要', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
        success: (res) => {
          resolve(res)
        },
        fail: (res) => {
          console.log(res)
          console.log("getUserProfile fail!")
        }
      })
    })
    Promise.all([login, getUserProfile]).then((results) => {
      console.log(results)

      wx.cloud.callFunction({
        name: 'login',
        data: {
          nickName: results[1].userInfo.nickName,
          avatarUrl: results[1].userInfo.avatarUrl,
          gender: results[1].userInfo.gender,
          signTime: new Date()
        }
      }).then(res => {
        // console.log(res)
        console.log(res.result.data.length)
        if (res.result.data.length == 0) {
          wx.cloud.callFunction({
            name: 'userAdd',
            data: {
              nickName: results[1].userInfo.nickName,
              avatarUrl: results[1].userInfo.avatarUrl,
              gender: results[1].userInfo.gender,
              signTime: new Date()
            }
          }).then(res => {
            console.log(res)
            wx.setStorage({
              key: "userInfo",
              data: results[1].userInfo
            })
            wx.setStorage({
              key: "hasUserInfo",
              data: true
            })
            // wx.setStorage({
            //   key: "AccessToken",
            //   data: res.data.AccessToken
            // })
            wx.navigateTo({
              url: '../index/index',
            })
            this.setData({
              userInfo: wx.getStorageSync('userInfo'),
              hasUserInfo: wx.getStorageSync('hasUserInfo')
            })
          })
        } else {
          wx.cloud.callFunction({
            name: 'userUpdate',
            data: {
              nickName: results[1].userInfo.nickName,
              avatarUrl: results[1].userInfo.avatarUrl,
              gender: results[1].userInfo.gender
            }
          }).then(res => {
            // console.log(res)
            wx.setStorage({
              key: "userInfo",
              data: results[1].userInfo
            })
            wx.setStorage({
              key: "hasUserInfo",
              data: true
            })
            // wx.setStorage({
            //   key: "AccessToken",
            //   data: res.data.AccessToken
            // })
            // wx.switchTab({
            //   url: '../myindex/myindex',
            // })
            this.setData({
              userInfo: wx.getStorageSync('userInfo'),
              hasUserInfo: wx.getStorageSync('hasUserInfo')
            })
          })
        }

      }).catch(err => {
        // handle error
        console.log("登录授权失败!")
        console.log(err)
      })

      // //发起网络请求
      // wx.request({
      //   url: app.globalData.HEYISCHOOL_API_BASE_URL + '/user/weChatSignIn',
      //   data: {
      //     code: results[0].code,
      //     rawData: results[1].rawData,
      //     signature: results[1].signature,
      //     iv: results[1].iv,
      //     encryptedData: results[1].encryptedData
      //   },
      //   method: "POST",
      //   success: (res) => {
      //     // console.log("wechatLoginApi res: " + res)
      //     if (res.data.code == 2000) {
      //       wx.setStorage({
      //         key: "userInfo",
      //         data: results[1].userInfo
      //       })
      //       wx.setStorage({
      //         key: "hasUserInfo",
      //         data: true
      //       })
      //       wx.setStorage({
      //         key: "AccessToken",
      //         data: res.data.AccessToken
      //       })
      //       wx.switchTab({
      //         url: '../myindex/myindex',
      //       })
      //     } else if (res.data.code == 5000)
      //       console.log("微信授权失败！")
      //   },
      //   fail: (res) => {
      //     console.log(res)
      //     wx.showModal({
      //       title: '提示',
      //       content: '功能维护中。',
      //       success(res) {
      //         if (res.confirm) {
      //           wx.switchTab({
      //             url: '../index/index',
      //           })
      //         } else if (res.cancel) {
      //           console.log('用户点击取消')
      //         }
      //       }
      //     })

      //   }
      // })
    })
  },

})